1. Field of the Invention
Embodiments described herein are directed to a dynamic data queuing mechanism for packet networks. Specifically, a three-dimensional coil can expand or contract in length. In addition, the size of each loop of the coil may be adjusted such that circular queue size may be increased or decreased.
2. Related Art
Simple circular queues form a common method of buffering data. A circular queue consists of an input pointer and an output pointer that are incremented each time a data element is processed, in a first-in/first-out (xe2x80x9cFIFOxe2x80x9d) manner. Upon reaching the end of a queue, the pointers wrap around to the beginning again.
Since circular queues do not require maintenance of linked lists or memory allocation because of their fixed sizes, they are especially useful in time sensitive applications. A disadvantage of circular queues is that they are not memory efficient, in that the space allocated to the queues is not dynamically changeable.
U.S. Pat. No. 6,145,061, issued Nov. 7, 2000, and entitled xe2x80x9cMethod of Management of a Circular Queue for Asynchronous Accessxe2x80x9d discloses the use of a marker within queue data so as to allow sharing of circular queues by multiple processing threads as well as changing of queue size. This method adds to the operations needed in the queue input/output functions and thus affects their performance. Moreover, when queue sizes change, data copying becomes required.
A method that allows the space allocated for circular queues to be increased or decreased during normal operation, without subtracting from the efficiency of queuing and de-queuing data is thus a well-needed improvement in the field.